﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Zombicide.Model
{
    public class Weapon : Object
    {
        //public int Range { get; set; } // porté de l'arme
        public int PA { get; set; } // PA Necessaire pour utilisé cette arme
        public int Accuracy { get; set; } // Nbr + D6 > 6 = touché
        public int Damage { get; set; } // Nbr Hp en moins si touché
        public int Fiability { get; set; } // Pts de fiabilité + D6 > 6 = aucun problème
        public List<Problem> PotentialProblems { get; set; } // Probleme potentiel voir test de fiabilité et currentProblems
        public List<Problem> CurrentProblems { get; set; } // En cas de test de fiabilité raté l'arme à un probleme parmis les problemes potentiel
        public AmmoType AmmoTypeUsed { get; set; } // Type de munition utilisé
        public int Sound { get; set; } // Son = approche des zombies dans cette direction
        public WeaponType Type { get; set; }

        public Weapon()
        {
            PotentialProblems = new List<Problem>();
            CurrentProblems = new List<Problem>();
        }
    }

    public enum Problem
    {
        Broken, // Cassé --> Perte de l'arme
        Blunt, // Emoussé --> -1 Damage (min 1)
        Halted, // Enrayé --> Inutilisable (peut être réparé)        
    }

    public enum WeaponType
    {
        Cutting, // Tranchant
        FirearmAuto, // Arme à feu automatique
        FirearmSemiAuto, // Arme à feu semi automatique
        Flame, // Feu (exemple : lance flamme)
        Blunt, // Objet contondant      
    }
}
